#ifndef __TEXTURE_OBJECT__
#define __TEXTURE_OBJECT__

#include "ReferenceCounter.hpp"
#include <string>
#include <GL/glut.h>

struct FIBITMAP;

typedef enum TextureType
{
	TEXTURE_ALPHA,
	TEXTURE_STANDARD

} TexType;


class TextureObject : public ReferenceCounter
{
public:
	TextureObject(std::string fileName, TexType textureType = TEXTURE_STANDARD);
	TextureObject(const FIBITMAP* pFIBMP);
	~TextureObject();

	const GLuint&        getTextureID() const;
	const TexType&       getTextureType();

private:
	GLuint      m_textureID;
	TexType     m_textureType;
};

#endif
